La Fundamentación de RAG
Los modelos de lenguaje grandes estándar (LLMs) están "congelados" en el tiempo, limitados por su fecha de corte de datos de entrenamiento. No pueden responder preguntas sobre el manual interno de tu empresa o una reunión privada por video de ayer.Generación Incrementada por Recuperación (RAG)cubre esta brecha al proporcionar al modelo LLM un contexto relevante recuperado de tus propios datos privados.
El Flujo de Trabajo Multifase
Para hacer que los datos privados sean "legibles" para un modelo LLM, seguimos una secuencia específica:
- Carga:Convirtiendo diversos formatos (PDF, Web, YouTube) a un formato de documento estándar.
- División:Dividiendo documentos largos en fragmentos más pequeños y manejables.
- Incorporación:Convirtiendo fragmentos de texto en vectores numéricos (representaciones matemáticas del significado).
- Almacenamiento:Guardando estos vectores en un almacenamiento vectorial (como Chroma) para búsquedas de similitud ultrarrápidas.
¿Por qué Importa la División en Fragmentos
Los modelos LLM tienen una "ventana de contexto" (límite sobre cuánto texto pueden procesar a la vez). Si envías un PDF de 100 páginas, el modelo fallará. Dividimos los datos en fragmentos para asegurarnos de que solo se envíen las partes más relevantes de la información al modelo.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>
Question 1
Why is
chunk_overlap considered a critical parameter when splitting documents for RAG?Challenge: Preserving Context
Apply your knowledge to a real-world scenario.
You are loading a YouTube transcript for a technical lecture. You notice that the search results are confusing "Lecture 1" content with "Lecture 2."
Task
Which splitter would be best for keeping context like "Section Headers" intact?
Solution:
MarkdownHeaderTextSplitter or RecursiveCharacterTextSplitter. These allow you to maintain document structure in the metadata, helping the retrieval system distinguish between different chapters or lectures.